package com.tedu.API.threadAPI;

/**
 * setPriority() 设置线程的优先级----决定执行那个线程
 * 单线程：创建一个线程做一件事情
 * 多线程，创建的多个线程做不同的事情
 * 线程的优先级范围：1~10 数值越大被执行的几率越大
 * 创建三个线程，分别指定三个线程的优先级  max 10
 *                                    normal 5
 *                                    min 1
 * 总结：创建多线程“同时”并发运行，不能主动获取CPU时间片
 *       也不能决定时间片的长度，只能被动分配
 *       如果调整优先级，按照优先级数值大小，确定是否加大获取CPU时间片几率
 */
public class Thread_Priority {
    public static void main(String[] args) {
        Thread max=new Thread(()->{
            for (int i=0;i<100;i++){
                System.out.println("老大一出手地球抖三斗");
            }
        });
        Thread normal=new Thread(()->{
            for (int i=0;i<100;i++){
                System.out.println("老二一出手，蚊子全飞走");
            }
        });
        Thread min=new Thread(()->{
            for (int i=0;i<100;i++){
                System.out.println("老三一张口，笑道一头牛");
            }
        });
        //设置线程的优先级
        max.setPriority(10);
//        normal.setPriority(5);
        min.setPriority(Thread.MIN_PRIORITY);//定死值
        //统一启动
        max.start();
        normal.start();
        min.start();
    }
}
